from django.contrib.auth.models import User
from django.db import models

from utils.ModelMixin import ModelSetMixin,DataTimeModelMixin


# Create your models here.
class UserDetail(ModelSetMixin):
    SEX_CHOICES = (
        (0, "女"),
        (1, "男"),
    )
    avatar = models.TextField(verbose_name='头像', null=True, blank=True)
    birthday = models.IntegerField(verbose_name='生日', null=True, blank=True)
    sex = models.IntegerField(verbose_name='性别', null=True, blank=True, choices=SEX_CHOICES)  # 自动添加时间
    phone = models.CharField(verbose_name='电话号码', null=True, blank=True, max_length=11, unique=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)

class Area(models.Model):
    name = models.CharField(max_length=20,verbose_name='名称')
    parent = models.ForeignKey('self',verbose_name='上级新政区划',on_delete=models.SET_NULL,null=True, blank=True)

    class Meta:
        db_table = 'area'
        verbose_name='行政区划'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

class Address(DataTimeModelMixin):
    name = models.CharField(max_length=40, verbose_name='地址名')
    receiver = models.CharField(max_length=40, verbose_name='收货人')
    province = models.ForeignKey(Area, on_delete=models.PROTECT, verbose_name='省', related_name='province_addresses')
    city = models.ForeignKey(Area, on_delete=models.PROTECT, verbose_name='市', related_name='city_addresses')
    district = models.ForeignKey(Area, on_delete=models.PROTECT, verbose_name='区', related_name='district_addresses')
    place = models.CharField(max_length=40, verbose_name='详情地址')
    mobile = models.CharField(max_length=11, verbose_name='手机')
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='用户')

    class Meta:
        ordering = ['-update_time']
        verbose_name = '收获地址'
        verbose_name_plural = verbose_name
